This invention relates to event handing in a programmable processor.
One challenge in designing a programmable microprocessor, such as a digital signal processor, is the handling of events including interrupts and exceptions. An interrupt may be an event that changes the normal instruction flow in the processor. An exception may be a software-initiated event that arises when an error is encountered, such as invalid instruction or bus error. In designing a processor, it is desirable to handle events as quickly as possible. However, this typically involves additional hardware that may increase the power consumption of the processor.
Challenges in event handling may be compounded by the fact that interrupts may be nested. In other words, a second interrupt (e.g. a nested interrupt) may be received while a first interrupt is still being handled. Thus, at any given time, a number of interrupt service routines can be active. Event handling may require a prioritization scheme to deal with multiple active service routines in the most efficient manner.